iT邦幫忙

2022 iThome 鐵人賽

DAY 26
0
AI & Data

氣象食材系列 第 26

[Day 26]進階觀測資料-雷達觀測(nexrad)

  • 分享至 

  • xImage
  •  

今天介紹另一種儲存雷達原始資料常用的格式-nexrad,但目前氣象局僅有五分山雷達使用此nexrad資料格式儲存原始資料。目前氣象局使用的是nexrad version2,那現在已經有nexrad version3,不清楚多久之後氣象局會跟進。

python的pyart套件可以讀取nexrad資料格式。

import pyart

nexrad = pyart.io.read_nexrad_archive("day26/20220526_0741_RCWF_VOL.157")
print(nexrad)

上述print(nexrad)會出現雷達相關資料(如下圖),基本是以屬性的概念取得第一層資料,取完之後會提供字典物件,可根據鍵值取數值。
https://ithelp.ithome.com.tw/upload/images/20221010/201509230vHI4pTldu.jpg

#取屬性latitude
lat_atri = nexrad.latitude
print(lat_atri)
'''
會得到字典物件如下
{'long_name': 'Latitude',
 'standard_name': 'Latitude',
 'units': 'degrees_north',
 'data': array([25.07305527])}
'''
#根據鍵值取數值
lat = lat_atri["data"]

'''
這樣就可以取得雷達位置緯度值
'''

pyart有提供非常方便的視覺化方法,直接使用就可了。

fig = plt.figure(figsize=(16,8))
display = pyart.graph.RadarMapDisplay(nexrad) #先開一個要畫雷達地圖的物件
ax = plt.subplot(121,
                 projection=crs.PlateCarree())

display.plot_ppi_map('velocity',
                     sweep=1,
                     ax=ax,
                     projection=crs.PlateCarree(),
                     colorbar_label='Radial Velocity ($V_{r}$) \n (m/s)',
                     vmin=-30,
                     vmax=30,
                     shapefile="tw_shp/COUNTY_MOI_1090820.shp",
                     shapefile_kwargs={"facecolor":'none','edgecolor':'green'},
                     embellish=False, #取消內建的海岸線shapefile
                     cmap="pyart_BuDOr18")
ax.set_extent([119, 123.5, 21, 26.5])
gl=ax.gridlines(draw_labels=True)
gl.right_labels = False

ax = plt.subplot(122,
                 projection=crs.PlateCarree())
display.plot_ppi_map('reflectivity',
                     sweep=1,
                     ax=ax,
                     colorbar_label='Equivalent Relectivity ($Z_{e}$) \n (dBZ)',
                     vmin=-20,
                     vmax=60,
                     shapefile="tw_shp/COUNTY_MOI_1090820.shp",
                     shapefile_kwargs={"facecolor":'none','edgecolor':'green'},
                     embellish=False)

ax.set_extent([119, 123.5, 21, 26.5])
gl=ax.gridlines(draw_labels=True)
gl.right_labels = False

視覺化圖形如下
https://ithelp.ithome.com.tw/upload/images/20221010/20150923Dry9GWrGt9.png


上一篇
[Day 25]進階觀測資料-雷達觀測(Rainbow5)(2/2)
下一篇
[Day 27] 天氣特報-豪大雨特報(CAP)
系列文
氣象食材30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言